/*
 Rilego - An easy Images 2 E-Book converter.
Copyright (C) 2011  Federico Improta (Kirys)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
*/

package it.kirys.rilego.gui.filtersmanager.setters;

import it.kirys.rilego.engine.processors.imagefilters.IImageFilter;
import it.kirys.rilego.gui.filtersmanager.nodesmanaging.BooleanLeafEditor;
import it.kirys.rilego.gui.filtersmanager.nodesmanaging.IBooleanValue;
import it.kirys.rilego.gui.filtersmanager.setters.prefs.IFilterPref;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JComponent;

/**
 *
 ** @author Federico Improta
 */
public abstract class AbstractFilterSetter<T extends IImageFilter> extends ArrayList<IFilterPref> implements IFilterSetter<T>, IBooleanValue {
	private boolean selected;
	private T filter;
	BooleanLeafEditor editor = new BooleanLeafEditor();

	@Override
	public Object getValue() {
		return Boolean.valueOf(selected);
	}

	@Override
	public void setValue(Object aValue) {
		if (aValue instanceof Boolean){
			selected= ((Boolean)aValue).booleanValue();
		}
	}

	@Override
	public boolean isSelected() {
		return selected;
	}

	@Override
	public void setSelected(boolean selected) {
		this.selected=selected;
	}

	@Override
	public T getFilter() {
		return filter;
	}

	@Override
	public List<IFilterPref> getPrefs() {
		return this;
	}


	public AbstractFilterSetter(T filter) {
		super();
		this.filter=filter;
		selected=true;
	}


	@Override
	public JComponent getEditor() {
		return editor;
	}

}
